.\" libctl: flexible Guile-based control files for scientific software 
.\" Copyright (C) 1998-2020 Steven G. Johnson
.\" 
.\" This library is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU Lesser General Public
.\" License as published by the Free Software Foundation; either
.\" version 2 of the License, or (at your option) any later version.
.\" 
.\" This library is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
.\" Lesser General Public License for more details.
.\" 
.\" You should have received a copy of the GNU Lesser General Public
.\" License along with this library; if not, write to the
.\" Free Software Foundation, Inc., 59 Temple Place - Suite 330,
.\" Boston, MA  02111-1307, USA.
.\" 
.\" Steven G. Johnson can be contacted at stevenj@alum.mit.edu.
.\" 
.TH GEN-CTL-IO 1 "March 27, 2006" "libctl" "libctl"
.SH NAME
gen-ctl-io \- generate C interface code for libctl control files
.SH SYNOPSIS
.B gen-ctl-io
[OPTION]... [\fIspec-file\fR]
.SH DESCRIPTION
.PP
." Add any additional description here
.B gen-ctl-io
generates C code to import/export the input/output
variables used in a libctl control file.
.B gen-ctl-io
generates files like \fIctl-io.h\fP and \fIctl-io.c\fP.  These files define global variables, data structures, and functions for the input/output variables, classes, and function interfaces defined in the
.I spec-file
argument, automating the interaction between C and Guile.

The arguments such as
.B --code
and 
.B --header
are used to control whether \fIctl-io.c\fP or \fIctl-io.h\fP,
etcetera, are generated.  If no argument is specified then both of
these files are generated by default, for backwards compatibility.

libctl is a free library to aid in interfacing scientific software
with the GNU Guile scripting and extension language.  Documentation
for it may be found online at the libctl home page:
.I http://ab-initio.mit.edu/libctl
.SH OPTIONS
.TP
\fB\--code\fR
Generate C (or C++) source code to implement the Guile interface
functions.  The default output file name is ctl-io.c (in C) or
ctl-io.cpp (in C++).
.TP
\fB\--header\fR
Generate the header file declaring the interface data types and
functions. The default output file name is ctl-io.h (in C) or
ctl-io.hpp (in C++).
.TP
\fB\--swig\fR
Generate a SWIG interface definition file declaring automatic conversions
for the various libctl data types.  The default output file name is
ctl-io.i.
.TP
\fB\--cxx\fR
Generate C++ code instead of C code.
.TP
\fB\-o\fR \fIfile\fR
Use 
.I file
as the output file name instead of the defaults (above).
.SH BUGS
Send bug reports to S. G. Johnson, stevenj@alum.mit.edu.
.SH AUTHORS
Written by Steven G. Johnson.
